Winning “Pay The Rent” on The Price Is Right

Author

Dusty Turner

Published

May 17, 2024

I am not Rachel Dillman….

Goals today:

  1. Take roll:
  • Where are you from?
  • Favorite Waco restaurant?
  1. Tell you why I’m so much more cool than Rachel
  2. Explain how linear / integer programming is used in the “real world”
  3. Inspire / Scare you
  4. Maybe look at your actual assignment

My Family

Jill

Cal

Reese

Educational History

  • Center Point High School; Center Point, Texas, 2003
  • United States Military Academy; West Point, NY, 2007
    • BS Operations Research
  • Missouri University of Science & Technology; Rolla, MO, 2012
    • MS Engineering Management
  • THE Ohio State University; Columbus, OH, 2016
    • MS Integrated Systems Engineering
    • Graduate Minor Applied Statistics
  • Baylor University, Waco, TX

Army Education History

  • Engineer Basic Officer Leaders Course 2008; Fort Leonard Wood (FLW), MO
  • Airborne School 2008; FT Benning, GA
  • Sapper Leader Course 2010; FLW, MO
  • Engineer Captain’s Career Course 2012; FLW, MO
  • Command and General Staff Officers Course 2020; FT Leavenworth, KS
  • Functional Area 49 Qualifications Course 2021; FT Lee, VA

Work History

  • 2003-2007 West Point, NY
  • 2008-2011 Schofield Barracks, HI
    • Geospatial Platoon Leader
    • Sapper Company Executive Officer
    • Iraq 2008/2009
  • 2012 Fort Leonard Wood, MO
    • Engineer Career Course
  • 2012-2014 White Sands Missile Range, NM
    • Mobility Augmentation Company Commander
    • Afghanistan 2013
  • 2014-2016 THE Ohio State University
  • 2016-2019 United States Military Academy, West Point, NY
    • Assistant Professor
    • Advanced Probability and Statistics
    • Statistical Methods
    • Sabermetrics
  • 2019-2022 Fort Belvoir, VA
    • Center for Army Analysis
  • 2022-2025 Waco, TX
    • Baylor University, Department of Statistics
  • 2025-??? West Point, NY
    • Academy Professor of Mathematics

So why am I the one teaching…?

So lets have some fun

Pay The Rent

  • Formal Rules: The Price Is Right Fandom.

  • This game has been won 7 times out of the 113 times its been played.

  • To gain a better understanding of how to play, here is a contestant playing.

What We’ll Do

To Analyze this game, we’ll…

  • Scrape all the prices from historical games
  • Specify an integer program to solve one of these games
  • Find the optimal solution using R
  • Functionalize this process and solve all games

Scrape the data

Since the point of this post is not to talk through web scraping, I’ll summarize how I do this.

First, download the raw data. More specifics on how to scrap data can be found here using rvest.

library(tidyverse)
library(rvest)
library(strex)

data_getter <- function(url) {
  str_c("https://priceisright.fandom.com/wiki/Pay_the_Rent/Solutions/Season_", url) |>
  read_html() |>
  html_nodes("td") |>
  html_text()
}

tpir_text <- c("39~45", "46~50", "51~55") |> map(.f = ~data_getter(url = .x)) |> unlist()

tpir_text |> head(10)
 [1] "S39~45\n"                                                                
 [2] "S46~50\n"                                                                
 [3] "S51~55\n"                                                                
 [4] "1\n"                                                                     
 [5] "Pantene shampoo ($5.99)\n"                                               
 [6] "Red Baron pizza slices ($3.49) & McCormick cinnamon ($2.98) = $6.47\n"   
 [7] "Whink cook top cleaner ($5.49) & Del Monte canned corn ($1.49) = $6.98\n"
 [8] "9 Lives cat food ($7.30)\n"                                              
 [9] "1\n"                                                                     
[10] "Dixie napkins ($2.89)\n"                                                 

Second, identify which prizes to go which games, delete duplicate rows, and extract dollar values from the text string.

cleaning <-
tpir_text |> 
  as_tibble() |> 
  mutate(value = str_replace(string = value,pattern = "\\(2-pack\\)",replacement = "2-pack"))   |> 
  mutate(game = row_number()) |> 
  mutate(group = if_else(str_length(value)<6 & !str_detect(string = value,pattern = "Same"),"New","")) |> 
  mutate(group_id = if_else(group == "New", str_c(group, "_", game), NA)) |> 
  fill(group_id) |> 
  group_by(group_id) |> 
  filter(n()==5) |> 
  ungroup() %>% 
  mutate(group_number = lag(floor(1:nrow(.)/5),1)) |> 
  mutate(really_new = if_else(group=="New", str_sub(string = value,start = 1,1),NA)) |> 
  fill(really_new) |> 
  filter(really_new == 1) |> 
  mutate(group_number = replace_na(group_number,0))  |> 
  mutate(dollars = as_tibble(str_extract_all(string = value,pattern = "\\([^()]+\\)",simplify = TRUE))) |> 
  mutate(dollars1 = dollars$V1, dollars2 = dollars$V2) |> 
  select(-c(dollars,game,group,really_new,-group_id)) |>
  rename(text = value) |> 
  pivot_longer(cols = contains("dollars")) |> 
  mutate(string_num = row_number()) 

cleaning
# A tibble: 1,230 × 6
   text                             group_id group_number name  value string_num
   <chr>                            <chr>           <dbl> <chr> <chr>      <int>
 1 "1\n"                            New_4               0 doll… ""             1
 2 "1\n"                            New_4               0 doll… ""             2
 3 "Pantene shampoo ($5.99)\n"      New_4               0 doll… "($5…          3
 4 "Pantene shampoo ($5.99)\n"      New_4               0 doll… ""             4
 5 "Red Baron pizza slices ($3.49)… New_4               0 doll… "($3…          5
 6 "Red Baron pizza slices ($3.49)… New_4               0 doll… "($2…          6
 7 "Whink cook top cleaner ($5.49)… New_4               0 doll… "($5…          7
 8 "Whink cook top cleaner ($5.49)… New_4               0 doll… "($1…          8
 9 "9 Lives cat food ($7.30)\n"     New_4               0 doll… "($7…          9
10 "9 Lives cat food ($7.30)\n"     New_4               0 doll… ""            10
# ℹ 1,220 more rows

Finally, to complete the dollar value extraction, we use str_extract_currencies and join it back into the data frame. Lastly, we convert it into ‘wide’ format.

Admittedly, this is a little ‘hacky’ so I’d be happy for any feedback to improve this process.

final_data <-
  cleaning |>
  left_join(str_extract_currencies(cleaning$value)) |>
  mutate(amount = if_else(curr_sym == "(", amount / 100, amount)) |>
  filter(!is.na(amount)) |>
  group_by(group_number) |>
  filter(n() == 6) |>
  mutate(product_order = row_number()) |>
  select(group_number, product_order, amount) |>
  mutate(product_order = str_c("product_", product_order)) |>
  pivot_wider(names_from = product_order, values_from = amount) |>
  janitor::clean_names() |>
  ungroup()

final_data
# A tibble: 113 × 7
   group_number product_1 product_2 product_3 product_4 product_5 product_6
          <dbl>     <dbl>     <dbl>     <dbl>     <dbl>     <dbl>     <dbl>
 1            0      5.99      3.49      2.98      5.49      1.49      7.3 
 2            1      2.89      1.69      1.49      3.29      0.29      4.19
 3            2      5.49      2.99      3.19      2.09      4.99      7.49
 4            3      4.99      1.79      3.46      2.99      2.59      6.29
 5            4      3.99      4.99      0.79      3.39      2.99      6.79
 6            5      4.99      3.39      3.49      7         0.79      7.99
 7            6      5.29      4.49      1.49      2.79      3.49      6.69
 8            7      6.99      3.69      3.49      1.89      5.7       7.99
 9            8      4.49      0.29      4.99      2.99      3.49      6.99
10            9      2.49      0.99      3.69      0.69      4.09      4.99
# ℹ 103 more rows

Specify the Integer Program

Integer Program

To solve this program, we’ll need to set up a linear program.

We’ll define the objective equation as such:

Max

\(price_1 x_{1m} + price_2 x_{2m} + price_3 x_{3m} + price_4 x_{4m} + price_5 x_{5m} + price_6 x_{6m} + price_1 x_{1f} + ... + price_4 x_{4a}\)

Where

\(price_n\) is the price of prize ‘\(n\)

\(x_{ny}\) is 1 if prize \(n\) is selected on row \(y\) or 0 otherwise.

\(y \in \{m = mailbox, f = first floor, s = second floor, a = attic \}\)

Subject to;

Floor capacity constraints:

\(x_{1a} + x_{2a} + x_{3a} + x_{4a} + x_{5a} + x_{6a} = 1\)

\(x_{1s} + x_{2s} + x_{3s} + x_{4s} + x_{5s} + x_{6s} = 2\)

\(x_{1f} + x_{2f} + x_{3f} + x_{4f} + x_{5f} + x_{6f} = 2\)

\(x_{1m} + x_{2m} + x_{3m} + x_{4m} + x_{5m} + x_{6m} = 1\)

A price can only be selected once:

\(x_{1m} + x_{1f} + x_{1s} + x_{1a} = 1\)

\(x_{2m} + x_{2f} + x_{2s} + x_{2a} = 1\)

\(x_{3m} + x_{3f} + x_{3s} + x_{3a} = 1\)

\(x_{4m} + x_{4f} + x_{4s} + x_{4a} = 1\)

\(x_{5m} + x_{5f} + x_{5s} + x_{5a} = 1\)

\(x_{6m} + x_{6f} + x_{6s} + x_{6a} = 1\)

The sum of the prices on each floor must cost more than the floor under it:

\(\sum_{n = 1}^6 price_n x_{na} - \sum_{n = 1}^6 price_n x_{ns} > 0\)

\(\sum_{n = 1}^6 price_n x_{ns} - \sum_{n = 1}^6 price_n x_{nf} > 0\)

\(\sum_{n = 1}^6 price_n x_{nf} - \sum_{n = 1}^6 price_n x_{nm} > 0\)

Coding the Solution

This solution relies on the lpSolve library.

library(lpSolve)

We’ll begin by defining our objective equation.

To create the objective equation, we’ll use the prices from the first time this game was played.

It is a vector of all the prices.

prices <- as.numeric(final_data[1,2:7])
f_obj <- rep(prices,4)
f_obj
 [1] 5.99 3.49 2.98 5.49 1.49 7.30 5.99 3.49 2.98 5.49 1.49 7.30 5.99 3.49 2.98
[16] 5.49 1.49 7.30 5.99 3.49 2.98 5.49 1.49 7.30

We input the constraints via matrix form where the rows correspond to individual constraints and the columns correspond to elements of the objective function.

lpSolve assumes non-negativity constraints

f_con <- matrix(c(1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ## attic gets 1 
                  0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ## 2nd floor gets 2
                  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, ## 1st floor gets 2
                  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, ## basement gets 1
                  1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, ## a selected once
                  0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, ## b selected once
                  0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, ## c selected once
                  0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, ## d selected once
                  0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, ## e selected once
                  0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, ## f selected once
                  prices,-prices, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ## attic more than 2nd floor
                  0, 0, 0, 0, 0, 0, prices,-prices, 0, 0, 0, 0, 0, 0, ## 2nd floor more than 1st floor
                  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, prices,-prices ## 1st floor more than mailbox
), nrow = 13, byrow = TRUE)

Next, we code the equality signs for each constraint.

f_dir <- c("=", ## attic gets 1
           "=", ## 2nd floor gets 2
           "=", ## 1st floor gets 2
           "=", ## basement gets 1
           "=", ## a selected once
           "=", ## b selected once
           "=", ## c selected once
           "=", ## d selected once
           "=", ## e selected once
           "=", ## f selected once
           ">", ## attic more than 2nd floor
           ">", ## 2nd floor more than 1st
           ">")  ## 1st floor more than mailbox
 
f_dir
 [1] "=" "=" "=" "=" "=" "=" "=" "=" "=" "=" ">" ">" ">"

Next, we set values for the right hand side of the constraint matrix.

f_rhs <- c(1, ## attic gets 1
           2, ## 2nd floor gets 2
           2, ## 1st floor gets 1
           1, ## attic gets 1
           1, ## a selected 1
           1, ## b selected 1
           1, ## c selected 1
           1, ## d selected 1
           1, ## e selected 1
           1, ## f selected 1
           0, ## attic - 2nd floor > 0
           0, ## 2nd floor - 1st floor > 0
           0  ## 1st floor - mailbox > 0
)

Now, we can solve the problem.

lp(
  direction = "max",
  objective.in =  f_obj,
  const.mat =  f_con,
  const.dir =  f_dir,
  const.rhs =  f_rhs, 
  all.bin = TRUE
  )
Success: the objective function is 26.74 

You can see this only provides the solution to the objective equation. This isn’t interesting, because it should be the sum of all the prizes since our constrains limit us to selecting each prize once.

What we need is the location of each prize

lp(
  direction = "max",
  objective.in = f_obj,
  const.mat = f_con,
  const.dir = f_dir,
  const.rhs = f_rhs,
  all.bin = TRUE
)$solution
 [1] 0 0 0 0 0 1 0 0 0 1 1 0 0 1 1 0 0 0 1 0 0 0 0 0

This provides the solution vector with 1s for the location of each prize in the objective equation. With a little massaging, we can understand this better

tibble(prize = rep(c("a","b","c","d","e","f"),4),
       row = sort(rep(c("1.attic","2.second","3.first","4.mailbox"),6)),
       selected = lp("max", f_obj, f_con, f_dir, f_rhs, all.bin = TRUE)$solution,
       prices = rep(f_obj,1)
       ) |>
  filter(selected == 1) |> 
  group_by(row) |> 
  mutate(floor_sum = sum(prices))
# A tibble: 6 × 5
# Groups:   row [4]
  prize row       selected prices floor_sum
  <chr> <chr>        <dbl>  <dbl>     <dbl>
1 f     1.attic          1   7.3       7.3 
2 d     2.second         1   5.49      6.98
3 e     2.second         1   1.49      6.98
4 b     3.first          1   3.49      6.47
5 c     3.first          1   2.98      6.47
6 a     4.mailbox        1   5.99      5.99

We can see that this solution meets our constraints for the game. Nice!

Functionalize and solve all games

Lastly, lets set up a function to solve all the games.

This function will take a price data frame, and from the optimal solution, output the location of each products that satisfies the constraints.

solution_getter <- function(floor = 25, data){
  
  prices <- as.numeric(data[floor,2:7])
  f.obj <- rep(prices,4)

solution <-
tibble(prize = rep(c("a","b","c","d","e","f"),4),
       floor = sort(rep(c("1.attic","2.second","3.first","4.mailbox"),6)),
       selected = lp("max", f_obj, f_con, f_dir, f_rhs, all.bin = TRUE)$solution,
       prices = rep(f.obj,1)) |> 
  filter(selected == 1) |> 
  group_by(floor) |> mutate(floor_sum = round(sum(prices),2)) |>  ungroup() |> 
  select(-selected)
return(solution)
}

Given this function, we can find the solution for any game.

Solution to game 1:

solution_getter(floor = 1, data = final_data)
# A tibble: 6 × 4
  prize floor     prices floor_sum
  <chr> <chr>      <dbl>     <dbl>
1 f     1.attic     7.3       7.3 
2 d     2.second    5.49      6.98
3 e     2.second    1.49      6.98
4 b     3.first     3.49      6.47
5 c     3.first     2.98      6.47
6 a     4.mailbox   5.99      5.99

Solution to game 50:

solution_getter(floor = 50,data = final_data)
# A tibble: 6 × 4
  prize floor     prices floor_sum
  <chr> <chr>      <dbl>     <dbl>
1 f     1.attic     6.99      6.99
2 d     2.second    2.69      6.68
3 e     2.second    3.99      6.68
4 b     3.first     0.99      6.18
5 c     3.first     5.19      6.18
6 a     4.mailbox   1.99      1.99

Solve all games

With the help of the magical purrr family of functions, we can map this function over all the data.

purrr::map_dfr(1:(nrow(final_data)), ~solution_getter(floor = .x, data = final_data),.id = "Game_ID") |> 
  print(n = Inf)
# A tibble: 678 × 5
    Game_ID prize floor     prices floor_sum
    <chr>   <chr> <chr>      <dbl>     <dbl>
  1 1       f     1.attic     7.3       7.3 
  2 1       d     2.second    5.49      6.98
  3 1       e     2.second    1.49      6.98
  4 1       b     3.first     3.49      6.47
  5 1       c     3.first     2.98      6.47
  6 1       a     4.mailbox   5.99      5.99
  7 2       f     1.attic     4.19      4.19
  8 2       d     2.second    3.29      3.58
  9 2       e     2.second    0.29      3.58
 10 2       b     3.first     1.69      3.18
 11 2       c     3.first     1.49      3.18
 12 2       a     4.mailbox   2.89      2.89
 13 3       f     1.attic     7.49      7.49
 14 3       d     2.second    2.09      7.08
 15 3       e     2.second    4.99      7.08
 16 3       b     3.first     2.99      6.18
 17 3       c     3.first     3.19      6.18
 18 3       a     4.mailbox   5.49      5.49
 19 4       f     1.attic     6.29      6.29
 20 4       d     2.second    2.99      5.58
 21 4       e     2.second    2.59      5.58
 22 4       b     3.first     1.79      5.25
 23 4       c     3.first     3.46      5.25
 24 4       a     4.mailbox   4.99      4.99
 25 5       f     1.attic     6.79      6.79
 26 5       d     2.second    3.39      6.38
 27 5       e     2.second    2.99      6.38
 28 5       b     3.first     4.99      5.78
 29 5       c     3.first     0.79      5.78
 30 5       a     4.mailbox   3.99      3.99
 31 6       f     1.attic     7.99      7.99
 32 6       d     2.second    7         7.79
 33 6       e     2.second    0.79      7.79
 34 6       b     3.first     3.39      6.88
 35 6       c     3.first     3.49      6.88
 36 6       a     4.mailbox   4.99      4.99
 37 7       f     1.attic     6.69      6.69
 38 7       d     2.second    2.79      6.28
 39 7       e     2.second    3.49      6.28
 40 7       b     3.first     4.49      5.98
 41 7       c     3.first     1.49      5.98
 42 7       a     4.mailbox   5.29      5.29
 43 8       f     1.attic     7.99      7.99
 44 8       d     2.second    1.89      7.59
 45 8       e     2.second    5.7       7.59
 46 8       b     3.first     3.69      7.18
 47 8       c     3.first     3.49      7.18
 48 8       a     4.mailbox   6.99      6.99
 49 9       f     1.attic     6.99      6.99
 50 9       d     2.second    2.99      6.48
 51 9       e     2.second    3.49      6.48
 52 9       b     3.first     0.29      5.28
 53 9       c     3.first     4.99      5.28
 54 9       a     4.mailbox   4.49      4.49
 55 10      f     1.attic     4.99      4.99
 56 10      d     2.second    0.69      4.78
 57 10      e     2.second    4.09      4.78
 58 10      b     3.first     0.99      4.68
 59 10      c     3.first     3.69      4.68
 60 10      a     4.mailbox   2.49      2.49
 61 11      f     1.attic     8.27      8.27
 62 11      d     2.second    6.79      7.78
 63 11      e     2.second    0.99      7.78
 64 11      b     3.first     3.39      6.38
 65 11      c     3.first     2.99      6.38
 66 11      a     4.mailbox   5.99      5.99
 67 12      f     1.attic    16.3      16.3 
 68 12      d     2.second    1.49     15.5 
 69 12      e     2.second   14.0      15.5 
 70 12      b     3.first     2.99     15.0 
 71 12      c     3.first    12        15.0 
 72 12      a     4.mailbox   8.5       8.5 
 73 13      f     1.attic     6.49      6.49
 74 13      d     2.second    2.99      5.88
 75 13      e     2.second    2.89      5.88
 76 13      b     3.first     0.35      5.34
 77 13      c     3.first     4.99      5.34
 78 13      a     4.mailbox   4.49      4.49
 79 14      f     1.attic    11.0      11.0 
 80 14      d     2.second    0.99     10.2 
 81 14      e     2.second    9.21     10.2 
 82 14      b     3.first     4.29      8.88
 83 14      c     3.first     4.59      8.88
 84 14      a     4.mailbox   6.99      6.99
 85 15      f     1.attic     3.99      3.99
 86 15      d     2.second    1.69      3.68
 87 15      e     2.second    1.99      3.68
 88 15      b     3.first     2.99      3.28
 89 15      c     3.first     0.29      3.28
 90 15      a     4.mailbox   2.49      2.49
 91 16      f     1.attic     5.29      5.29
 92 16      d     2.second    3.49      4.88
 93 16      e     2.second    1.39      4.88
 94 16      b     3.first     1.99      4.28
 95 16      c     3.first     2.29      4.28
 96 16      a     4.mailbox   3.99      3.99
 97 17      f     1.attic     4.99      4.99
 98 17      d     2.second    3.79      4.88
 99 17      e     2.second    1.09      4.88
100 17      b     3.first     1.89      4.38
101 17      c     3.first     2.49      4.38
102 17      a     4.mailbox   4         4   
103 18      f     1.attic     5.19      5.19
104 18      d     2.second    3.99      4.88
105 18      e     2.second    0.89      4.88
106 18      b     3.first     2.09      3.88
107 18      c     3.first     1.79      3.88
108 18      a     4.mailbox   3.49      3.49
109 19      f     1.attic     4.99      4.99
110 19      d     2.second    3.99      4.68
111 19      e     2.second    0.69      4.68
112 19      b     3.first     1.79      3.78
113 19      c     3.first     1.99      3.78
114 19      a     4.mailbox   3.29      3.29
115 20      f     1.attic     2.99      2.99
116 20      d     2.second    2.29      2.74
117 20      e     2.second    0.45      2.74
118 20      b     3.first     1.09      2.28
119 20      c     3.first     1.19      2.28
120 20      a     4.mailbox   1.99      1.99
121 21      f     1.attic     4.22      4.22
122 21      d     2.second    1.99      4.08
123 21      e     2.second    2.09      4.08
124 21      b     3.first     1.49      3.78
125 21      c     3.first     2.29      3.78
126 21      a     4.mailbox   2.99      2.99
127 22      f     1.attic    14.0      14.0 
128 22      d     2.second    6.82     13.8 
129 22      e     2.second    6.99     13.8 
130 22      b     3.first     4.29     12.0 
131 22      c     3.first     7.69     12.0 
132 22      a     4.mailbox   9.99      9.99
133 23      f     1.attic     8         8   
134 23      d     2.second    3.49      7.48
135 23      e     2.second    3.99      7.48
136 23      b     3.first     4.6       6.89
137 23      c     3.first     2.29      6.89
138 23      a     4.mailbox   5.99      5.99
139 24      f     1.attic     3.99      3.99
140 24      d     2.second    0.89      3.68
141 24      e     2.second    2.79      3.68
142 24      b     3.first     1.49      3.18
143 24      c     3.first     1.69      3.18
144 24      a     4.mailbox   2.69      2.69
145 25      f     1.attic     8.49      8.49
146 25      d     2.second    1.19      8.37
147 25      e     2.second    7.18      8.37
148 25      b     3.first     0.99      7.46
149 25      c     3.first     6.47      7.46
150 25      a     4.mailbox   0.59      0.59
151 26      f     1.attic     9.99      9.99
152 26      d     2.second    5.79      8.08
153 26      e     2.second    2.29      8.08
154 26      b     3.first     1.09      4.48
155 26      c     3.first     3.39      4.48
156 26      a     4.mailbox   0.59      0.59
157 27      f     1.attic    17.0      17.0 
158 27      d     2.second    7.18     14.7 
159 27      e     2.second    7.49     14.7 
160 27      b     3.first     1.99      5.98
161 27      c     3.first     3.99      5.98
162 27      a     4.mailbox   1.49      1.49
163 28      f     1.attic    13.0      13.0 
164 28      d     2.second    4.99     10.8 
165 28      e     2.second    5.79     10.8 
166 28      b     3.first     2.49      5.28
167 28      c     3.first     2.79      5.28
168 28      a     4.mailbox   1.59      1.59
169 29      f     1.attic     8.49      8.49
170 29      d     2.second    5.99      8.28
171 29      e     2.second    2.29      8.28
172 29      b     3.first     6.42      7.91
173 29      c     3.first     1.49      7.91
174 29      a     4.mailbox   3.49      3.49
175 30      f     1.attic     5.49      5.49
176 30      d     2.second    3.49      5.08
177 30      e     2.second    1.59      5.08
178 30      b     3.first     2.29      4.88
179 30      c     3.first     2.59      4.88
180 30      a     4.mailbox   3.99      3.99
181 31      f     1.attic     6.49      6.49
182 31      d     2.second    4.39      6.18
183 31      e     2.second    1.79      6.18
184 31      b     3.first     4.99      5.88
185 31      c     3.first     0.89      5.88
186 31      a     4.mailbox   2.29      2.29
187 32      f     1.attic     8.99      8.99
188 32      d     2.second    2.39      7.68
189 32      e     2.second    5.29      7.68
190 32      b     3.first     1.89      5.88
191 32      c     3.first     3.99      5.88
192 32      a     4.mailbox   0.79      0.79
193 33      f     1.attic     7.49      7.49
194 33      d     2.second    2.99      7.28
195 33      e     2.second    4.29      7.28
196 33      b     3.first     0.99      6.98
197 33      c     3.first     5.99      6.98
198 33      a     4.mailbox   3.49      3.49
199 34      f     1.attic     7.99      7.99
200 34      d     2.second    0.69      7.18
201 34      e     2.second    6.49      7.18
202 34      b     3.first     2.99      6.28
203 34      c     3.first     3.29      6.28
204 34      a     4.mailbox   5.29      5.29
205 35      f     1.attic     8.99      8.99
206 35      d     2.second    1.49      8.28
207 35      e     2.second    6.79      8.28
208 35      b     3.first     2.59      8.08
209 35      c     3.first     5.49      8.08
210 35      a     4.mailbox   3.79      3.79
211 36      f     1.attic     7.99      7.99
212 36      d     2.second    5.19      7.68
213 36      e     2.second    2.49      7.68
214 36      b     3.first     0.59      7.08
215 36      c     3.first     6.49      7.08
216 36      a     4.mailbox   4.19      4.19
217 37      f     1.attic    12.0      12.0 
218 37      d     2.second    3.99     11.0 
219 37      e     2.second    6.98     11.0 
220 37      b     3.first     1.99      7.42
221 37      c     3.first     5.43      7.42
222 37      a     4.mailbox   1.59      1.59
223 38      f     1.attic    15.0      15.0 
224 38      d     2.second    4.09      9.08
225 38      e     2.second    4.99      9.08
226 38      b     3.first     2.19      5.88
227 38      c     3.first     3.69      5.88
228 38      a     4.mailbox   1.99      1.99
229 39      f     1.attic    14.0      14.0 
230 39      d     2.second    4.49     13.3 
231 39      e     2.second    8.8      13.3 
232 39      b     3.first     2.99     13.0 
233 39      c     3.first     9.99     13.0 
234 39      a     4.mailbox   5.99      5.99
235 40      f     1.attic     8.49      8.49
236 40      d     2.second    1.29      8.28
237 40      e     2.second    6.99      8.28
238 40      b     3.first     2.99      7.98
239 40      c     3.first     4.99      7.98
240 40      a     4.mailbox   4.49      4.49
241 41      f     1.attic     9.49      9.49
242 41      d     2.second    4.29      9.28
243 41      e     2.second    4.99      9.28
244 41      b     3.first     0.99      7.48
245 41      c     3.first     6.49      7.48
246 41      a     4.mailbox   3.49      3.49
247 42      f     1.attic     8.99      8.99
248 42      d     2.second    4.99      8.48
249 42      e     2.second    3.49      8.48
250 42      b     3.first     0.99      7.48
251 42      c     3.first     6.49      7.48
252 42      a     4.mailbox   4.29      4.29
253 43      f     1.attic     9.99      9.99
254 43      d     2.second    4.29      9.28
255 43      e     2.second    4.99      9.28
256 43      b     3.first     0.99      7.48
257 43      c     3.first     6.49      7.48
258 43      a     4.mailbox   3.79      3.79
259 44      f     1.attic     6.99      6.99
260 44      d     2.second    0.99      6.48
261 44      e     2.second    5.49      6.48
262 44      b     3.first     1.99      5.98
263 44      c     3.first     3.99      5.98
264 44      a     4.mailbox   3.29      3.29
265 45      f     1.attic     8.99      8.99
266 45      d     2.second    1.29      8.28
267 45      e     2.second    6.99      8.28
268 45      b     3.first     2.99      7.98
269 45      c     3.first     4.99      7.98
270 45      a     4.mailbox   4.49      4.49
271 46      f     1.attic     9.99      9.99
272 46      d     2.second    4.19      9.18
273 46      e     2.second    4.99      9.18
274 46      b     3.first     0.59      7.58
275 46      c     3.first     6.99      7.58
276 46      a     4.mailbox   3.19      3.19
277 47      f     1.attic     9.99      9.99
278 47      d     2.second    3.99      9.48
279 47      e     2.second    5.49      9.48
280 47      b     3.first     2.99      7.98
281 47      c     3.first     4.99      7.98
282 47      a     4.mailbox   0.79      0.79
283 48      f     1.attic     7.49      7.49
284 48      d     2.second    0.99      6.98
285 48      e     2.second    5.99      6.98
286 48      b     3.first     2.99      6.48
287 48      c     3.first     3.49      6.48
288 48      a     4.mailbox   5.29      5.29
289 49      f     1.attic    11.0      11.0 
290 49      d     2.second    3.99     10.6 
291 49      e     2.second    6.59     10.6 
292 49      b     3.first     2.19     10.2 
293 49      c     3.first     7.99     10.2 
294 49      a     4.mailbox   1.29      1.29
295 50      f     1.attic     6.99      6.99
296 50      d     2.second    2.69      6.68
297 50      e     2.second    3.99      6.68
298 50      b     3.first     0.99      6.18
299 50      c     3.first     5.19      6.18
300 50      a     4.mailbox   1.99      1.99
301 51      f     1.attic     9.49      9.49
302 51      d     2.second    4.19      9.18
303 51      e     2.second    4.99      9.18
304 51      b     3.first     1.29      8.28
305 51      c     3.first     6.99      8.28
306 51      a     4.mailbox   3.49      3.49
307 52      f     1.attic     9.99      9.99
308 52      d     2.second    0.99      8.98
309 52      e     2.second    7.99      8.98
310 52      b     3.first     3.49      8.18
311 52      c     3.first     4.69      8.18
312 52      a     4.mailbox   2.99      2.99
313 53      f     1.attic     9.9       9.9 
314 53      d     2.second    4.49      9.48
315 53      e     2.second    4.99      9.48
316 53      b     3.first     1.29      9.28
317 53      c     3.first     7.99      9.28
318 53      a     4.mailbox   3.29      3.29
319 54      f     1.attic     8.99      8.99
320 54      d     2.second    1.29      8.28
321 54      e     2.second    6.99      8.28
322 54      b     3.first     2.99      7.98
323 54      c     3.first     4.99      7.98
324 54      a     4.mailbox   4.49      4.49
325 55      f     1.attic    13.0      13.0 
326 55      d     2.second    1.29     11.3 
327 55      e     2.second    9.99     11.3 
328 55      b     3.first     4.49     11.0 
329 55      c     3.first     6.49     11.0 
330 55      a     4.mailbox   3.99      3.99
331 56      f     1.attic     9.99      9.99
332 56      d     2.second    0.99      8.98
333 56      e     2.second    7.99      8.98
334 56      b     3.first     2.99      6.18
335 56      c     3.first     3.19      6.18
336 56      a     4.mailbox   2.59      2.59
337 57      f     1.attic     6.99      6.99
338 57      d     2.second    2.79      6.78
339 57      e     2.second    3.99      6.78
340 57      b     3.first     0.99      6.48
341 57      c     3.first     5.49      6.48
342 57      a     4.mailbox   1.99      1.99
343 58      f     1.attic    11.0      11.0 
344 58      d     2.second    4.79     10.3 
345 58      e     2.second    5.49     10.3 
346 58      b     3.first     1.19      9.18
347 58      c     3.first     7.99      9.18
348 58      a     4.mailbox   3.99      3.99
349 59      f     1.attic     9.49      9.49
350 59      d     2.second    3.79      8.58
351 59      e     2.second    4.79      8.58
352 59      b     3.first     1.29      8.28
353 59      c     3.first     6.99      8.28
354 59      a     4.mailbox   2.99      2.99
355 60      f     1.attic    19.0      19.0 
356 60      d     2.second    4.99     18.0 
357 60      e     2.second   13.0      18.0 
358 60      b     3.first     6.99     16.0 
359 60      c     3.first     8.99     16.0 
360 60      a     4.mailbox   0.7       0.7 
361 61      f     1.attic     9.99      9.99
362 61      d     2.second    0.99      9.98
363 61      e     2.second    8.99      9.98
364 61      b     3.first     2.99      7.18
365 61      c     3.first     4.19      7.18
366 61      a     4.mailbox   2.49      2.49
367 62      f     1.attic    11.0      11.0 
368 62      d     2.second    3.99     10.5 
369 62      e     2.second    6.49     10.5 
370 62      b     3.first     2.19     10.2 
371 62      c     3.first     7.99     10.2 
372 62      a     4.mailbox   1.29      1.29
373 63      f     1.attic     8.49      8.49
374 63      d     2.second    3.99      8.18
375 63      e     2.second    4.19      8.18
376 63      b     3.first     0.79      7.78
377 63      c     3.first     6.99      7.78
378 63      a     4.mailbox   1.79      1.79
379 64      f     1.attic    11.0      11.0 
380 64      d     2.second    3.99      9.98
381 64      e     2.second    5.99      9.98
382 64      b     3.first     1.29      9.28
383 64      c     3.first     7.99      9.28
384 64      a     4.mailbox   3.49      3.49
385 65      f     1.attic    12.4      12.4 
386 65      d     2.second    1.29     11.3 
387 65      e     2.second    9.99     11.3 
388 65      b     3.first     3.49      8.48
389 65      c     3.first     4.99      8.48
390 65      a     4.mailbox   2.99      2.99
391 66      f     1.attic    15.0      15.0 
392 66      d     2.second    4.99     12.0 
393 66      e     2.second    6.99     12.0 
394 66      b     3.first     3.19      7.18
395 66      c     3.first     3.99      7.18
396 66      a     4.mailbox   1.59      1.59
397 67      f     1.attic     9.99      9.99
398 67      d     2.second    4.69      9.68
399 67      e     2.second    4.99      9.68
400 67      b     3.first     1.49      9.48
401 67      c     3.first     7.99      9.48
402 67      a     4.mailbox   2.5       2.5 
403 68      f     1.attic     9.86      9.86
404 68      d     2.second    0.99      8.94
405 68      e     2.second    7.95      8.94
406 68      b     3.first     3.69      8.68
407 68      c     3.first     4.99      8.68
408 68      a     4.mailbox   2.49      2.49
409 69      f     1.attic    12.0      12.0 
410 69      d     2.second    3.49     11.5 
411 69      e     2.second    7.99     11.5 
412 69      b     3.first     2.99      9.98
413 69      c     3.first     6.99      9.98
414 69      a     4.mailbox   5.99      5.99
415 70      f     1.attic    11.0      11.0 
416 70      d     2.second    0.35      9.34
417 70      e     2.second    8.99      9.34
418 70      b     3.first     3.49      8.48
419 70      c     3.first     4.99      8.48
420 70      a     4.mailbox   2.29      2.29
421 71      f     1.attic     9.99      9.99
422 71      d     2.second    3.29      9.54
423 71      e     2.second    6.25      9.54
424 71      b     3.first     0.35      8.34
425 71      c     3.first     7.99      8.34
426 71      a     4.mailbox   4.19      4.19
427 72      f     1.attic     9.97      9.97
428 72      d     2.second    3.49      9.48
429 72      e     2.second    5.99      9.48
430 72      b     3.first     1         8.99
431 72      c     3.first     7.99      8.99
432 72      a     4.mailbox   2.39      2.39
433 73      f     1.attic     8.99      8.99
434 73      d     2.second    3.49      8.48
435 73      e     2.second    4.99      8.48
436 73      b     3.first     0.94      7.73
437 73      c     3.first     6.79      7.73
438 73      a     4.mailbox   2.99      2.99
439 74      f     1.attic     8.49      8.49
440 74      d     2.second    2.99      7.48
441 74      e     2.second    4.49      7.48
442 74      b     3.first     0.62      6.87
443 74      c     3.first     6.25      6.87
444 74      a     4.mailbox   2.69      2.69
445 75      f     1.attic    11.0      11.0 
446 75      d     2.second    2.39     10.4 
447 75      e     2.second    7.99     10.4 
448 75      b     3.first     4.29      9.28
449 75      c     3.first     4.99      9.28
450 75      a     4.mailbox   3.99      3.99
451 76      f     1.attic     9.99      9.99
452 76      d     2.second    3.79      9.78
453 76      e     2.second    5.99      9.78
454 76      b     3.first     1.49      9.28
455 76      c     3.first     7.79      9.28
456 76      a     4.mailbox   2.99      2.99
457 77      f     1.attic     9.99      9.99
458 77      d     2.second    1.99      9.65
459 77      e     2.second    7.66      9.65
460 77      b     3.first     1.49      7.98
461 77      c     3.first     6.49      7.98
462 77      a     4.mailbox   3.99      3.99
463 78      f     1.attic     8.99      8.99
464 78      d     2.second    1.39      8.38
465 78      e     2.second    6.99      8.38
466 78      b     3.first     3.49      7.78
467 78      c     3.first     4.29      7.78
468 78      a     4.mailbox   2.49      2.49
469 79      f     1.attic     9.59      9.59
470 79      d     2.second    1.99      8.98
471 79      e     2.second    6.99      8.98
472 79      b     3.first     3.29      8.78
473 79      c     3.first     5.49      8.78
474 79      a     4.mailbox   4.49      4.49
475 80      f     1.attic     9.49      9.49
476 80      d     2.second    2.99      8.98
477 80      e     2.second    5.99      8.98
478 80      b     3.first     0.59      8.58
479 80      c     3.first     7.99      8.58
480 80      a     4.mailbox   4.29      4.29
481 81      f     1.attic     8.99      8.99
482 81      d     2.second    3.49      8.48
483 81      e     2.second    4.99      8.48
484 81      b     3.first     1.29      8.28
485 81      c     3.first     6.99      8.28
486 81      a     4.mailbox   2.99      2.99
487 82      f     1.attic     9.99      9.99
488 82      d     2.second    1.5       9.49
489 82      e     2.second    7.99      9.49
490 82      b     3.first     3.49      8.98
491 82      c     3.first     5.49      8.98
492 82      a     4.mailbox   2.99      2.99
493 83      f     1.attic     8.49      8.49
494 83      d     2.second    3.99      8.18
495 83      e     2.second    4.19      8.18
496 83      b     3.first     0.59      7.58
497 83      c     3.first     6.99      7.58
498 83      a     4.mailbox   1.79      1.79
499 84      f     1.attic    11.0      11.0 
500 84      d     2.second    1.99      9.98
501 84      e     2.second    7.99      9.98
502 84      b     3.first     4.99      9.48
503 84      c     3.first     4.49      9.48
504 84      a     4.mailbox   3.99      3.99
505 85      f     1.attic    11.0      11.0 
506 85      d     2.second    1.59      9.58
507 85      e     2.second    7.99      9.58
508 85      b     3.first     4.29      9.28
509 85      c     3.first     4.99      9.28
510 85      a     4.mailbox   3.99      3.99
511 86      f     1.attic    18.0      18.0 
512 86      d     2.second    4.49     11.5 
513 86      e     2.second    6.99     11.5 
514 86      b     3.first     2.29      6.08
515 86      c     3.first     3.79      6.08
516 86      a     4.mailbox   0.99      0.99
517 87      f     1.attic    10        10   
518 87      d     2.second    3.99      8.98
519 87      e     2.second    4.99      8.98
520 87      b     3.first     1.49      8.48
521 87      c     3.first     6.99      8.48
522 87      a     4.mailbox   3.29      3.29
523 88      f     1.attic    14.0      14.0 
524 88      d     2.second    4.49     13.0 
525 88      e     2.second    8.47     13.0 
526 88      b     3.first     1.29     11.3 
527 88      c     3.first     9.99     11.3 
528 88      a     4.mailbox   6.49      6.49
529 89      f     1.attic    11.0      11.0 
530 89      d     2.second    3.99     10.5 
531 89      e     2.second    6.49     10.5 
532 89      b     3.first     2.29      9.73
533 89      c     3.first     7.44      9.73
534 89      a     4.mailbox   1.99      1.99
535 90      f     1.attic     9.99      9.99
536 90      d     2.second    1.99      9.48
537 90      e     2.second    7.49      9.48
538 90      b     3.first     1.49      7.98
539 90      c     3.first     6.49      7.98
540 90      a     4.mailbox   3.99      3.99
541 91      f     1.attic    12.0      12.0 
542 91      d     2.second    6.49     11.5 
543 91      e     2.second    4.99     11.5 
544 91      b     3.first     1.29     10.3 
545 91      c     3.first     8.99     10.3 
546 91      a     4.mailbox   3.29      3.29
547 92      f     1.attic    11.0      11.0 
548 92      d     2.second    3.49     10.5 
549 92      e     2.second    6.98     10.5 
550 92      b     3.first     1.19     10.2 
551 92      c     3.first     8.99     10.2 
552 92      a     4.mailbox   4.99      4.99
553 93      f     1.attic     8.99      8.99
554 93      d     2.second    0.85      8.34
555 93      e     2.second    7.49      8.34
556 93      b     3.first     1.79      7.78
557 93      c     3.first     5.99      7.78
558 93      a     4.mailbox   3.99      3.99
559 94      f     1.attic     8.99      8.99
560 94      d     2.second    1.29      8.28
561 94      e     2.second    6.99      8.28
562 94      b     3.first     3.29      7.28
563 94      c     3.first     3.99      7.28
564 94      a     4.mailbox   2.29      2.29
565 95      f     1.attic    13.0      13.0 
566 95      d     2.second    4.99     12.0 
567 95      e     2.second    6.99     12.0 
568 95      b     3.first     1.5      10.5 
569 95      c     3.first     8.99     10.5 
570 95      a     4.mailbox   4.29      4.29
571 96      f     1.attic    15.0      15.0 
572 96      d     2.second    5.49     14.8 
573 96      e     2.second    9.29     14.8 
574 96      b     3.first     2.49      6.48
575 96      c     3.first     3.99      6.48
576 96      a     4.mailbox   1.19      1.19
577 97      f     1.attic    12.0      12.0 
578 97      d     2.second    4.79     11.3 
579 97      e     2.second    6.49     11.3 
580 97      b     3.first     1.99     11.0 
581 97      c     3.first     8.99     11.0 
582 97      a     4.mailbox   3.49      3.49
583 98      f     1.attic    11.0      11.0 
584 98      d     2.second    1.79      9.78
585 98      e     2.second    7.99      9.78
586 98      b     3.first     4.29      9.28
587 98      c     3.first     4.99      9.28
588 98      a     4.mailbox   3.99      3.99
589 99      f     1.attic     9.99      9.99
590 99      d     2.second    1.99      9.48
591 99      e     2.second    7.49      9.48
592 99      b     3.first     1.49      7.98
593 99      c     3.first     6.49      7.98
594 99      a     4.mailbox   3.99      3.99
595 100     f     1.attic    11.0      11.0 
596 100     d     2.second    3.79     10.3 
597 100     e     2.second    6.49     10.3 
598 100     b     3.first     2.29      9.78
599 100     c     3.first     7.49      9.78
600 100     a     4.mailbox   1.99      1.99
601 101     f     1.attic     8.99      8.99
602 101     d     2.second    3.99      8.18
603 101     e     2.second    4.19      8.18
604 101     b     3.first     0.59      7.58
605 101     c     3.first     6.99      7.58
606 101     a     4.mailbox   2.19      2.19
607 102     f     1.attic     9.99      9.99
608 102     d     2.second    1.59      9.58
609 102     e     2.second    7.99      9.58
610 102     b     3.first     4.29      9.28
611 102     c     3.first     4.99      9.28
612 102     a     4.mailbox   3.99      3.99
613 103     f     1.attic    11.0      11.0 
614 103     d     2.second    4.59     10.6 
615 103     e     2.second    5.99     10.6 
616 103     b     3.first     0.99      8.98
617 103     c     3.first     7.99      8.98
618 103     a     4.mailbox   3.99      3.99
619 104     f     1.attic     8.99      8.99
620 104     d     2.second    3.49      8.48
621 104     e     2.second    4.99      8.48
622 104     b     3.first     1.29      8.28
623 104     c     3.first     6.99      8.28
624 104     a     4.mailbox   2.59      2.59
625 105     f     1.attic    13.0      13.0 
626 105     d     2.second    0.69     12.2 
627 105     e     2.second   11.5      12.2 
628 105     b     3.first     3.29     11.8 
629 105     c     3.first     8.49     11.8 
630 105     a     4.mailbox   7.49      7.49
631 106     f     1.attic    13.0      13.0 
632 106     d     2.second    2.69     12.7 
633 106     e     2.second    9.99     12.7 
634 106     b     3.first     1.39      9.38
635 106     c     3.first     7.99      9.38
636 106     a     4.mailbox   5.99      5.99
637 107     f     1.attic    17.0      17.0 
638 107     d     2.second    1.89     14.9 
639 107     e     2.second   13.0      14.9 
640 107     b     3.first     6.49     14.0 
641 107     c     3.first     7.49     14.0 
642 107     a     4.mailbox   4.99      4.99
643 108     f     1.attic    11.0      11.0 
644 108     d     2.second    4.49     10.5 
645 108     e     2.second    5.99     10.5 
646 108     b     3.first     0.4       9.39
647 108     c     3.first     8.99      9.39
648 108     a     4.mailbox   2.49      2.49
649 109     f     1.attic     8.99      8.99
650 109     d     2.second    0.33      8.32
651 109     e     2.second    7.99      8.32
652 109     b     3.first     3.29      7.58
653 109     c     3.first     4.29      7.58
654 109     a     4.mailbox   1.69      1.69
655 110     f     1.attic    12.0      12.0 
656 110     d     2.second    2.79     11.5 
657 110     e     2.second    8.74     11.5 
658 110     b     3.first     0.79     10.8 
659 110     c     3.first     9.99     10.8 
660 110     a     4.mailbox   4.49      4.49
661 111     f     1.attic    13.0      13.0 
662 111     d     2.second    4.99     12.5 
663 111     e     2.second    7.49     12.5 
664 111     b     3.first     1.89     11.9 
665 111     c     3.first     9.99     11.9 
666 111     a     4.mailbox   3.99      3.99
667 112     f     1.attic    20.0      20.0 
668 112     d     2.second    7.49     18.0 
669 112     e     2.second   10.5      18.0 
670 112     b     3.first     2.49     17.5 
671 112     c     3.first    15.0      17.5 
672 112     a     4.mailbox   1.49      1.49
673 113     f     1.attic    15.0      15.0 
674 113     d     2.second    5.99     14.5 
675 113     e     2.second    8.49     14.5 
676 113     b     3.first     1.67     13.7 
677 113     c     3.first    12.0      13.7 
678 113     a     4.mailbox   0.99      0.99
  # DT::datatable(options = list(pageLength = 6))

Questions